class CPU():
    pass


class Disk():
    pass


class Computer():
    def __init__(self, cpu, disk):
        self.cpu = cpu
        self.disk = disk


cpu = CPU()
disk = Disk()

com = Computer(cpu, disk)

# 变量的赋值
com1 = com
print(com1, '子对象', com1.cpu, com1.disk)
print(com, '子对象', com.cpu, com.disk)

# 类的浅拷贝,会产生一个新的对象，但是子对象没变
import copy

com2 = copy.copy(com)  # com2是新产生的对象，但是子对象cpu,disk不变
print(com2, com2.cpu, com2.disk)

# 类的深拷贝,会产生一个新的对象，子对象也会重新创建
com3 = copy.deepcopy(com)  # com3是新产生的对象，子对象cpu,disk也重新创建
print(com3, com3.cpu, com3.disk)
